﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Furiant.Figment.Agents.Inventory;

namespace Furiant.Figment.Items.Lootable
{
    interface IEquipActionCriterion<in THasInventory> where THasInventory:IHasInventory
    {
        /// <summary>
        /// The EquipAction to which this requirement is associated.
        /// </summary>
        EquipAction Action { get; }

        /// <summary>
        /// The function which must return True for the specified target in order for the requirement to be satisfied.
        /// </summary>
        Predicate<THasInventory> Criterion { get; }

        /// <summary>
        /// The text which describes the Criterion to the player.
        /// </summary>
        string Feedback { get; }
    }
}
